%ifndef REAL_MODE_BOOT_PROPERTY_S
%define REAL_MODE_BOOT_PROPERTY_S

%define MBR_BASE (0x7C00)


; loader 相关属性
;; loader 栈范围：0x500 ~ 0x5FF，向低地址扩展，共 256 B
%define LOADER_STACK_BASE (0x600)
%define LOADER_STACK_SIZE (0x100)
;; loader 可执行代码范围：0x600 ~ 0xDFF，共 2048 B
%define LOADER_CODE_BASE (0x600)
%define LOADER_CODE_SIZE (0x800)
; ARDS 及 ARDS 表
;; 每个 ARDS 占 24 B
%define ARDS_SIZE (24)
;; ARDS 表 范围：0x1000 ~ 0x163F，共1600 B，最多容纳 66 个 ARDS（1584 Bytes）
%define ARDS_TABLE_BASE (0x1000)
%define ARDS_TABLE_SIZE (1600)

; loader 中使用的 GDT 范围 0xE00 ~ 0xFFF，共 512 B，最多容纳 64 个 GDT 表项
;; 每个全局描述符占 8 B
%define GLOBAL_DESCRIPTOR_SIZE (8)
%define GDT_BASE (0xE00)
%define GDT_SIZE (0x200)
%define GDT_LIMIT (GDT_SIZE - 1)
; 页目录 基址：1x1000
%define PAGE_DIRECTORY_BASE (0x2000)
; 0x300 号页表 基址：0x2000
%define PAGE_TABLE_768_BASE (0x3000)
%define KERNEL_FILE_BASE (0xC00E_8000)
%endif